package userData.dao.impl;

import account.dao.AccountDao;
import account.entity.AccountVO;
import generic.dao.impl.GenericDaoImpl;
import userData.dao.UserDataDao;
import userData.entity.UserDataVO;

import java.util.List;

public class UserDataDaoImpl extends GenericDaoImpl<UserDataVO,Integer> implements UserDataDao {

    private AccountDao accountDao;

    public AccountDao getAccountDao() {
        return accountDao;
    }

    public void setAccountDao(AccountDao accountDao) {
        this.accountDao = accountDao;
    }

    @Override
    public UserDataVO findByUserDataId(Integer userDataId) {
        Object[] params={userDataId};
        List list=this.findObj("from UserDataVO a where a.userDataId=?",params);
        if(list.size() == 0){
            return null;
        }else {
            return (UserDataVO) list.get(0);
        }
    }

    @Override
    public UserDataVO updateUserDataVO(UserDataVO UserDataVO) {
        this.update(UserDataVO);
        return UserDataVO;
    }

    @Override
    public UserDataVO findUserDataVOById(Integer userDataId) {
         return (UserDataVO)this.findById(UserDataVO.class,userDataId);

    }

    @Override
    public UserDataVO addUserDataVO(UserDataVO userDataVO,AccountVO accountVO) {
        accountVO.setUserDataVO(userDataVO);
        userDataVO.setAccountVO(accountVO);
        this.save(userDataVO);
        accountDao.updateAccount(accountVO);
        return userDataVO;
    }
}
